/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

/**
 *
 * @author Dvid
 */
public class S_Calculadora extends UnicastRemoteObject implements CalculadoraRemota{

    public S_Calculadora() throws RemoteException{
    }

    @Override
    public double Suma(double a, double b) throws RemoteException {
        return a + b;
    }

    @Override
    public double Resta(double a, double b) throws RemoteException {
        return a - b;
    }

    @Override
    public double Multiplicacion(double a, double b) throws RemoteException {
        return a*b;
    }

    @Override
    public double Division(double a, double b) throws RemoteException {
        return a/b;
    }

    @Override
    public double potenciacion(double a, double b) throws RemoteException {
       return Math.pow(a, b);
    }

    @Override
    public double radicacion(double a) throws RemoteException {
        return Math.sqrt(a);
    }

    @Override
    public String decimalToBinario(String numero) throws RemoteException {
        String cadena;
        long cociente=Integer.parseInt(numero)/2;
        long residuo=Integer.parseInt(numero)%2;
        cadena=String.valueOf(residuo);

        if(cociente==0)
            {
            cadena="000"+cadena;
            }
        else{
            do{
                residuo=cociente%2;
                cociente=cociente/2;
                cadena=String.valueOf(residuo)+cadena;
                }while(cociente != 0);}
    return (String.valueOf(cadena));
    }

    @Override
    public String decimalToOctal(String numero) throws RemoteException {
         String cadena;
        long cociente=Integer.parseInt(numero)/8;
        long residuo=Integer.parseInt(numero)%8;
        cadena=String.valueOf(residuo);

        if(cociente==0)
            {
            cadena="000"+cadena;
            }
        else{
            do{
                residuo=cociente%8;
                cociente=cociente/8;
                cadena=String.valueOf(residuo)+cadena;
                }while(cociente != 0);}
    return (String.valueOf(cadena));
    }

    @Override
    public String decimalToHexadecimal(String numero) throws RemoteException {
         String cadena;
        long cociente=Integer.parseInt(numero)/16;
        long residuo=Integer.parseInt(numero)%16;
        cadena=String.valueOf(residuo);

        if(cociente==0)
            {
            cadena="000"+cadena;
            }
        else{
            do{
                residuo=cociente%16;
                cociente=cociente/16;
                cadena=String.valueOf(residuo)+cadena;
                }while(cociente != 0);}
    return (String.valueOf(cadena));
    }

    @Override
    public String binarioToDecimal(String numero) throws RemoteException {
       int resultado = Integer.parseInt(numero,2);
       return String.valueOf(resultado);
    }

    @Override
    public String octalToDecimal(String numero) throws RemoteException {
        int resultado = Integer.parseInt(numero,8);
        return String.valueOf(resultado);
    }

    @Override
    public String hexadecimalToDecimal(String numero) throws RemoteException {
        int resultado = Integer.parseInt(numero,16);
        return String.valueOf(resultado);
    }

    @Override
    public String evaluarPolinomio(String polinomio) throws RemoteException {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
}
